# -*- coding: utf-8 -*-

# 装饰器，在java中有代理，在spring中有aop，在python中有装饰器
# 在方法中， 有一方法可以又来交换方法之间的信息
# @functools.wraps(func)

import functools


def log(text):
    print 'log for %s' % text

    def decotator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print 'this is log for %s %s' % (text, func.__name__)
            return func(*args, **kw)

        return wrapper

    return decotator


@log('hello')
def test_log():
    print 'tlog'


test_log()

int2 = functools.partial(int, base=2)

print int2('1000')
